home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-05-08 | 10.6 KB | 307 lines |
- 10 CLEAR,65535
- 20 CLS
- 30 LOCATE 1,1,0
- 40 SCREEN 0,0,0
- 50 WIDTH 80
- 60 KEY OFF
- 70 COLOR 7,0,0
- 80 LOCATE 1,10:PRINT "OTHER FUNCTIONS OF MATH PAK"
- 90 LOCATE 5,10:PRINT "In this section of MATH PAK, the user is able to"
- 100 LOCATE 6,10:PRINT "solve several higher level math functions like"
- 110 LOCATE 7,10:PRINT "POLAR TO RECTANGULAR AND RECTANGULAR TO POLAR "
- 120 LOCATE 8,10:PRINT "CONVERSIONS,FINDING POINTS OF f(x) FUNCTIONS,"
- 130 LOCATE 9,10:PRINT "FINDING LOGARITHMS(given either base 10 or"
- 140 LOCATE 10,10:PRINT "base a). "
- 150 LOCATE 12,10:PRINT "The choices are:"
- 160 LOCATE 14,15:PRINT "A-POLAR TO RECTANGULAR CONVERSION"
- 170 LOCATE 15,15:PRINT "B-RECTANGULAR TO POLAR CONVERSION"
- 180 LOCATE 16,15:PRINT "C-POINTS OF f(x) (including first and second derivative)"
- 190 LOCATE 17,15:PRINT "D-FINDING LOGARITHMS(base 10 OR a)"
- 200 LOCATE 18,15:PRINT "E-SOLVE FOR f'(x) GIVEN f(x) = a(bx^c + dx^e + K)^n"
- 210 LOCATE 19,15:PRINT "X-EXIT TO FLOW SECTION"
- 220 LOCATE 21,20:PRINT "PLEASE ENTER A LETTER":LOCATE 21,42:INPUT AW$
- 230 IF AW$ = "A" OR AW$ = "a" THEN 300
- 240 IF AW$ = "b" OR AW$ ="B" THEN 530
- 250 IF AW$ ="C" OR AW$ ="c" THEN 850
- 260 IF AW$ ="D" OR AW$ ="d" THEN 1800
- 270 IF AW$ = "e" OR AW$ ="E" THEN 2270
- 280 IF AW$ ="X" OR AW$ ="x" THEN CLS:CHAIN"FLOW"
- 290 GOTO 220
- 300 CLS
- 310 LOCATE 1,5:PRINT "POLAR TO RECTANGULAR COORDINATES"
- 320 LOCATE 3,10:PRINT "You are to enter two values,"
- 330 LOCATE 4,10:PRINT "(r,":LOCATE 4,13:PRINT CHR$(237):LOCATE 4,14:PRINT ")"
- 340 LOCATE 4,15:PRINT ",which is a POLAR representation of a point A."
- 350 LOCATE 5,10:PRINT "The value r, is the directed distance from the origin(0,0)"
- 360 LOCATE 6,10:PRINT "to the point A.":LOCATE 6,26:PRINT CHR$(237)
- 370 LOCATE 6,27:PRINT ", is the angle value(in degrees) of the point."
- 380 LOCATE 8,20:PRINT "Enter the r value":LOCATE 8,38:INPUT R
- 390 LOCATE 9,20:PRINT "Enter the ":LOCATE 9,30:PRINT CHR$(237)
- 400 LOCATE 9,32:PRINT"value":LOCATE 9,38:INPUT AN
- 410 P = 3.14159
- 420 PX = R * (COS(AN * P / 180))
- 430 PY = R * (SIN(AN * P / 180))
- 440 LOCATE 12,10:PRINT "(";R;",";AN;CHR$(248);") POLAR, is "
- 450 LOCATE 13,10:PRINT "(":LOCATE 13,11:PRINT USING "####.##";PX
- 460 LOCATE 13,18:PRINT ","
- 470 LOCATE 13,19:PRINT USING "####.##";PY
- 480 LOCATE 13,26:PRINT ") RECTANGULAR (x,y)."
- 490 LOCATE 20,20:PRINT "PRESS SPACE BAR TO CONTINUE"
- 500 AWQ$ = INKEY$
- 510 IF AWQ$ = CHR$(32) THEN 20
- 520 GOTO 500
- 530 CLS
- 540 LOCATE 1,5:PRINT "RECTANGULAR TO POLAR COORDINATES"
- 550 LOCATE 3,10:PRINT "You are to enter two values,"
- 560 LOCATE 4,10:PRINT "(x,y), which is a RECTANGULAR representation of a point A."
- 570 LOCATE 5,10:PRINT "You are to enter the x value and then the y value."
- 580 LOCATE 6,10:PRINT "The result will be in the form of (r,":LOCATE 6,47:PRINT CHR$(237)
- 590 LOCATE 6,48:PRINT ")."
- 600 LOCATE 7,10:PRINT "Where r is the directed distance from origin(0,0) and ":LOCATE 8,10:PRINT CHR$(237)
- 610 LOCATE 8,12:PRINT "is the angle value(in degrees)."
- 620 LOCATE 10,20:PRINT "Enter x":LOCATE 10,28:INPUT X
- 630 LOCATE 11,20:PRINT "Enter y":LOCATE 11,28:INPUT Y
- 640 IF (X = 0) AND ( Y = 0) THEN R = 0: GOTO 770
- 650 R = SQR((X ^2) + (Y ^ 2))
- 660 IF (X = 0) AND ( Y > 0) THEN AN = 90:GOTO 780
- 670 IF ( X = 0) AND ( Y < 0) THEN AN = 270:GOTO 780
- 680 P = 3.14159
- 690 IF X = 0 THEN 660 ELSE GOTO 700
- 700 AN = ((ATN(Y / X) * 180 / P))
- 710 IF (X < 0) AND ( Y > 0) THEN AN = 180 + AN
- 720 IF ( X > 0) AND ( Y < 0) THEN AN = 360 + AN
- 730 IF (X < 0) AND ( Y < 0) THEN AN = 180 + AN
- 740 IF ( X < 0) AND ( Y = 0) THEN AN = 180
- 750 IF ( X = 0) AND ( Y < 0) THEN AN = 270
- 760 IF ( X > 0) AND ( Y = 0) THEN AN = 0
- 770 IF ( X = 0) AND ( Y = 0) THEN AN = 45
- 780 LOCATE 14,10:PRINT "(";X;",";Y;") RECTANGULAR is,"
- 790 LOCATE 15,10:PRINT "(":LOCATE 15,11:PRINT USING "####.##";R
- 800 LOCATE 15,18:PRINT ","
- 810 LOCATE 15,19:PRINT USING "####.##";AN
- 820 LOCATE 15,26:PRINT CHR$(248)
- 830 LOCATE 15,27:PRINT ") POLAR(r,":LOCATE 15,37:PRINT CHR$(237):LOCATE 15,38:PRINT ")."
- 840 GOTO 490
- 850 CLS
- 860 LOCATE 1,1,0
- 870 LOCATE 1,5:PRINT "POINTS OF f(x)"
- 880 LOCATE 3,10:PRINT "This section, will allow you to find the f(x) values"
- 890 LOCATE 4,10:PRINT "of a certain function, given values of -5 to 5 for x."
- 900 LOCATE 6,10:PRINT "The form used is f(x) = ax^5 + bx^4 + cx^3 + dx^2 + ex + K."
- 910 LOCATE 7,10:PRINT "(Note: ^ - means exponent, or x raised to the power"
- 920 LOCATE 8,10:PRINT "of the value following the ^ )."
- 930 LOCATE 10,10:PRINT "For example, given f(x) = 3x^5 +(-2)x^4 + 18x^3 +(-8)x^2 + 5x + 11"
- 940 LOCATE 12,10:PRINT "You get a = 3,b = -2,c = 18,d = -8,e = 5 as coefficients and K = 11"
- 950 LOCATE 14,10:PRINT "Example 2, given f(x) = -19.2x^3 + 6x"
- 960 LOCATE 16,10:PRINT "You notice that the function has no ax^5,bx^4,dx^2 or K values."
- 970 LOCATE 17,10:PRINT "In this case the values are a = 0,b = 0,c = -19.2,d = 0,e = 6 and K = 0"
- 980 LOCATE 18,10:PRINT "You will be asked to enter the a,b,c,d,e and K values."
- 990 LOCATE 19,10:PRINT "This section will also give the values of the first and"
- 1000 LOCATE 20,10:PRINT "second derivative of the function f(x). "
- 1010 LOCATE 23,20:PRINT "PRESS SPACE BAR TO CONTINUE"
- 1020 AWQ$ = INKEY$
- 1030 IF AWQ$ = CHR$(32) THEN 1050
- 1040 GOTO 1020
- 1050 CLS
- 1060 A = 0:B = 0:C=0:D=0:E=0:K=0:FX1=0:FX2=0:FX=0
- 1070 LOCATE 1,10:PRINT "Using f(x) = ax^5 + bx^4 + cx^3 + dx^2 + ex + K "
- 1080 LOCATE 5,20:PRINT "Enter a":LOCATE 5,28:INPUT A
- 1090 IF A > 9999 THEN 1080
- 1100 LOCATE 6,20:PRINT "Enter b":LOCATE 6,28:INPUT B
- 1110 IF B > 9999 THEN 1100
- 1120 LOCATE 7,20:PRINT "Enter c":LOCATE 7,28:INPUT C
- 1130 IF C > 9999 THEN 1120
- 1140 LOCATE 8,20:PRINT "Enter d":LOCATE 8,28:INPUT D
- 1150 LOCATE 9,20:PRINT "Enter e":LOCATE 9,28:INPUT E
- 1160 LOCATE 10,20:PRINT "Enter K":LOCATE 10,28:INPUT K
- 1170 LOCATE 12,20:PRINT "Are these values correct(y/n)":LOCATE 12,50:INPUT Q$
- 1180 IF Q$ = "Y" OR Q$ ="y" THEN 1220
- 1190 IF Q$ = "n" OR Q$ ="N" THEN 1050
- 1200 GOTO 1170
- 1210 REM begin calculations now
- 1220 CLS
- 1230 LOCATE 1,9:PRINT "x":LOCATE 1,23:PRINT "f(x) is "
- 1240 R = 2
- 1250 FOR X = -5 TO 5 STEP 0.5
- 1260 FX1 = ((A * ( X ^ 5)) + (B * (X ^ 4)) + (C * (X ^ 3)))
- 1270 FX2 = ((D * ( X ^ 2)) + (E * X))
- 1280 FX = FX1 + FX2 + K
- 1290 LOCATE R,8:PRINT X
- 1300 LOCATE R,17:PRINT USING "##########.###";FX
- 1310 IF FX = 0 THEN LOCATE R,31:PRINT "(x-axis intercept)"
- 1320 IF X = 0 THEN LOCATE R,31:PRINT "(y-axis intercept)"
- 1330 IF (X = 0) AND (FX = 0) THEN LOCATE R,31:PRINT " (origin) "
- 1340 R = R + 1
- 1350 NEXT X
- 1360 LOCATE 23,19:PRINT CHR$(17):LOCATE 23,47:PRINT CHR$(16)
- 1370 LOCATE 23,20:PRINT "PRESS SPACE BAR TO CONTINUE"
- 1380 FOR A5 = 1 TO 22:LOCATE A5,50:PRINT CHR$(179):NEXT A5
- 1390 LOCATE 10,53:PRINT "given"
- 1400 LOCATE 12,52:PRINT "a = ";A
- 1410 LOCATE 13,52:PRINT "b = ";B
- 1420 LOCATE 14,52:PRINT "c = ";C
- 1430 LOCATE 15,52:PRINT "d = ";D
- 1440 LOCATE 16,52:PRINT "e = ";E
- 1450 LOCATE 17,52:PRINT "K = ";K
- 1460 AWQ$ = INKEY$
- 1470 IF AWQ$ = CHR$(32) THEN 1490
- 1480 GOTO 1460
- 1490 CLS
- 1500 LOCATE 1,5:PRINT "x":LOCATE 1,23:PRINT "f'(x) is ":LOCATE 1,40:PRINT "f''(x) is "
- 1510 R = 2
- 1520 FOR X = -5 TO 5 STEP 0.5
- 1530 LOCATE R,4:PRINT X
- 1540 FD1 = (5 * A * (X ^ 4)) + ( 4 * B * (X ^ 3))
- 1550 FD2 = ( 3 * C * (X^2)) + ( 2 * D * X) + E
- 1560 FD = FD1 + FD2
- 1570 LOCATE R,17:PRINT USING "##########.###";FD
- 1580 R = R + 1:NEXT X
- 1590 R = 2
- 1600 FOR X = -5 TO 5 STEP 0.5
- 1610 SD1 = ( 20 * A * ( X ^ 3)) + (12 * B * (X ^ 2))
- 1620 SD2 = ( 6 * C * X) + ( 2 * D)
- 1630 SD = SD1 + SD2
- 1640 LOCATE R,35:PRINT USING "##########.###";SD
- 1650 R = R + 1:NEXT X
- 1660 FOR J = 2 TO 22:LOCATE J,55:PRINT CHR$(179):NEXT J
- 1670 LOCATE 3,57:PRINT "Given that f'(x1) is "
- 1680 LOCATE 4,57:PRINT "the slope of the tan-"
- 1690 LOCATE 5,57:PRINT "gent line to the curve "
- 1700 LOCATE 6,57:PRINT "y = f(x) at the point "
- 1710 LOCATE 7,57:PRINT "P(x1,f(x1))."
- 1720 LOCATE 23,20:PRINT "PRESS SPACE BAR TO CONTINUE"
- 1730 AWE$ = INKEY$
- 1740 IF AWE$ = CHR$(32) THEN 1760
- 1750 GOTO 1730
- 1760 CLS
- 1770 LOCATE 15,10:PRINT "Do you want to review the screens again(y/n)":LOCATE 15,55:INPUT WW$
- 1780 IF WW$ = "Y" OR WW$ ="y" THEN 1210
- 1790 GOTO 20
- 1800 CLS
- 1810 LOCATE 1,10:PRINT "LOGARITHMS"
- 1820 LOCATE 3,10:PRINT "In this section, you have two choices,"
- 1830 LOCATE 4,10:PRINT "you can find the logarithm of a value(x) using"
- 1840 LOCATE 5,10:PRINT "base 10(common logarithm) or find a logarithm"
- 1850 LOCATE 6,10:PRINT "using a base a."
- 1860 LOCATE 8,10:PRINT "The two choices are structured as :"
- 1870 LOCATE 10,20:PRINT "A - y = b log x"
- 1880 LOCATE 11,35:PRINT "10"
- 1890 LOCATE 13,20:PRINT "B - y = b log x"
- 1900 LOCATE 14,35:PRINT "a"
- 1910 LOCATE 16,10:PRINT "Enter a letter(a,b or x to exit)":LOCATE 16,43:INPUT GG$
- 1920 IF GG$ = "A" OR GG$ = "a" THEN 1960
- 1930 IF GG$ = "b" OR GG$ = "B" THEN 2030
- 1940 IF GG$ = "x" OR GG$ = "X" THEN 20
- 1950 GOTO 1910
- 1960 LOCATE 18,10:PRINT "Using choice 'A'(above) as a guide,"
- 1970 LOCATE 19,20:PRINT "Enter the constant b":LOCATE 19,41:INPUT B
- 1980 LOCATE 20,20:PRINT "Enter the x value":LOCATE 20,38:INPUT X
- 1990 IF (X < 0) OR ( X = 1) THEN 1980
- 2000 LOCATE 22,10:PRINT "The value of the logarithm(y) is "
- 2010 LOCATE 22,44:PRINT USING "##########.####";(B * (LOG(X)/ LOG(10)))
- 2020 GOTO 2230
- 2030 LOCATE 18,10:PRINT "Using choice 'B'(above) as a guide,"
- 2040 LOCATE 19,20:PRINT "Enter the constant b":LOCATE 19,41:INPUT B
- 2050 LOCATE 20,20:PRINT "Are you solving for x or y ":LOCATE 20,48:INPUT FT$
- 2060 IF FT$ = "y" OR FT$ = "Y" THEN 2110
- 2070 IF FT$ = "x" OR FT$ ="X" THEN 2090
- 2080 GOTO 2050
- 2090 LOCATE 20,20:PRINT "Enter the y value ":LOCATE 20,38:INPUT Y
- 2100 GOTO 2180
- 2110 LOCATE 20,20:PRINT "Enter the x value ":LOCATE 20,38:INPUT X
- 2120 IF X < 0 THEN 2110
- 2130 LOCATE 21,20:PRINT "Enter the base value 'a'":LOCATE 21,45:INPUT A
- 2140 IF ( A < 0) OR ( A = 1) THEN 2130
- 2150 LOCATE 22,10:PRINT "The value of the logarithm(y) is "
- 2160 LOCATE 22,44:PRINT USING "##########.####";(B * (LOG(X) / LOG(A)))
- 2170 GOTO 2230
- 2180 LOCATE 21,20:PRINT "Enter the base value 'a'":LOCATE 21,45:INPUT A
- 2190 IF ( A < 0) OR ( A = 1) THEN 2160
- 2200 LOCATE 22,10:PRINT "The value of x is "
- 2210 Y7 = B * ( A ^ Y)
- 2220 LOCATE 22,30:PRINT USING "##########.####";Y7
- 2230 LOCATE 23,30:PRINT CHR$(17):LOCATE 23,31:PRINT "PRESS SPACE BAR TO CONTINUE":LOCATE 23,58:PRINT CHR$(16)
- 2240 AWQ$ = INKEY$
- 2250 IF AWQ$ = CHR$(32) THEN 20
- 2260 GOTO 2240
- 2270 REM section to find f'(x)
- 2280 CLS
- 2290 A = 0:B=0:C=0:D=0:E=0:K=0:N=0
- 2300 LOCATE 2,5:PRINT "FIND f'(x) "
- 2310 LOCATE 5,5:PRINT "This section will calculate the f'(x) (first derivative"
- 2320 LOCATE 6,5:PRINT "of a function f(x)), given f(x) = a(bx^c + dx^e + K)^n"
- 2330 LOCATE 7,5:PRINT "(Note: ^ - means exponent,or raised to a power)"
- 2340 LOCATE 8,5:PRINT "For example,given f(x) = 3(x^5 - 4x + 8)^7"
- 2350 LOCATE 9,5:PRINT "You get a = 3,b = 1,c = 5,d = -4,e = 1,K = 8 and n = 7."
- 2360 LOCATE 11,5:PRINT "f'(x) would equal 21(x^5 - 4x + 8)^6 * (5x^4 - 4)"
- 2370 LOCATE 13,5:PRINT "You are to enter the a,b,c,d,e,K and n values only."
- 2380 LOCATE 14,5:PRINT "Please note that 'c' cannot be greater than five(5)"
- 2390 LOCATE 15,5:PRINT "and that 'e' cannot be greater than four(4) and 'n' "
- 2400 LOCATE 16,5:PRINT "not greater than six(6), or less than -5."
- 2410 LOCATE 18,5:PRINT "Example 2, given f(x) = 2(x^2)^3 "
- 2420 LOCATE 19,5:PRINT "then, a = 2,b = 0,c = 0,d = 1,e = 2,K = 0 and n = 3 "
- 2430 LOCATE 20,5:PRINT "(Note: 'a' MUST EQUAL AT LEAST ONE(1) AND NOT ZERO(0))"
- 2440 LOCATE 23,20:PRINT "PRESS SPACE BAR TO CONTINUE"
- 2450 IJ$ = INKEY$
- 2460 IF IJ$ = CHR$(32) THEN 2480
- 2470 GOTO 2450
- 2480 REM begin calculations
- 2490 CLS
- 2500 A = 0:B=0:C=0:D=0:E=0:K=0:N=0
- 2510 LOCATE 2,5:PRINT "Using f(x) = a(bx^c + dx^e + K)^n"
- 2520 LOCATE 5,5:PRINT "Enter a":LOCATE 5,14:INPUT A
- 2530 IF A = 0 THEN BEEP:GOTO 2520
- 2540 LOCATE 6,5:PRINT "Enter b":LOCATE 6,14:INPUT B
- 2550 LOCATE 7,5:PRINT "Enter c":LOCATE 7,14:INPUT C
- 2560 IF C > 5 THEN 2550
- 2570 LOCATE 8,5:PRINT "Enter d":LOCATE 8,14:INPUT D
- 2580 LOCATE 9,5:PRINT "Enter e":LOCATE 9,14:INPUT E
- 2590 IF E > 4 THEN 2580
- 2600 LOCATE 10,5:PRINT "Enter K":LOCATE 10,14:INPUT K
- 2610 LOCATE 11,5:PRINT "Enter n":LOCATE 11,14:INPUT N
- 2620 IF (N > 6) OR ( N < - 5) THEN 2610
- 2630 IF N = 0 THEN BEEP: GOTO 2610
- 2640 LOCATE 12,5:PRINT "Are these values correct(y/n)":LOCATE 12,35:INPUT AD$
- 2650 IF AD$ = "Y" OR AD$ ="y" THEN 2670
- 2660 GOTO 2490
- 2670 REM
- 2680 CLS
- 2690 LOCATE 1,10:PRINT "x":LOCATE 1,25:PRINT "f'(x) is"
- 2700 R = 2
- 2710 F1 = A * N
- 2720 FOR X = -5 TO 5 STEP 0.5
- 2725 F2 = B * ( X ^ C)
- 2730 F3 = D * ( X ^ E)
- 2735 F4 = N - 1
- 2740 FQ = F2 + F3 + K
- 2745 IF FQ = 0 THEN 2895
- 2750 FST = F1 * ( FQ ^ F4)
- 2755 F5 = B * C
- 2760 F6 = C - 1
- 2765 F7 = D * E
- 2770 F8 = E - 1
- 2775 SECD = ( F5 * ( X ^ F6)) + ( F7 * ( X ^ F8))
- 2780 FDT = FST * SECD:GOTO 2940
- 2895 FDT = 0:LOCATE R,22:PRINT "undefined at this point"
- 2940 LOCATE R,9:PRINT X
- 2950 LOCATE R,20:PRINT USING "##########.###";FDT
- 2960 IF X = 0 THEN LOCATE R,37:PRINT "(y-axis intercept)"
- 2970 IF FDT = 0 THEN LOCATE R,37:PRINT "(x-axis intercept)"
- 2980 IF (FDT = 0) AND ( X = 0) AND (FQ < > 0) THEN LOCATE R,37:PRINT "origin "
- 2985 IF ( FDT = 0) AND ( G8 = 0) AND ( F4 < 0) THEN LOCATE R,22:PRINT "undefined at this point "
- 2990 R = R + 1
- 3000 NEXT X
- 3010 FOR KK = 2 TO 22:LOCATE KK,60:PRINT CHR$(179):NEXT KK
- 3020 LOCATE 5,63:PRINT "given"
- 3030 LOCATE 7,63:PRINT "a = ";A
- 3040 LOCATE 8,63:PRINT "b = ";B
- 3050 LOCATE 9,63:PRINT "c = ";C
- 3060 LOCATE 10,63:PRINT "d = ";D
- 3070 LOCATE 11,63:PRINT "e = ";E
- 3080 LOCATE 12,63:PRINT "K = ";K
- 3090 LOCATE 13,63:PRINT "n = ";N
- 3100 LOCATE 23,20:PRINT "PRESS SPACE BAR TO CONTINUE"
- 3110 AGH$ = INKEY$
- 3120 IF AGH$ = CHR$(32) THEN 20
- 3130 GOTO 3110
-